/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.datalayer.dao;

import cz.muni.fi.diplomka.datalayer.entity.ShopOfferEntity;
import java.util.List;

/**
 * Interface for manipulation with Shop Offer Entity
 *
 * @author Jakub Kutil
 */
public interface ShopOfferDao {

    /**
     * Adds new Shop Offer to DB
     *
     * @param shopOfferEntity Shop Offer to add
     */
    public void addShopOffer(ShopOfferEntity shopOfferEntity);

    /**
     * Edits Shop Offer in DB
     *
     * @param shopOfferEntity Shop Offer to edit
     */
    public void editShopOffer(ShopOfferEntity shopOfferEntity);

    /**
     * Deletes Shop Offer in DB
     *
     * @param id ID of Shop Offer to delete
     */
    public void deleteShopOffer(Long id);

    /**
     * Gets a Shop Offer with specified ID from DB
     *
     * @param id ID of Shop Offer to find
     *
     * @return Shop Offer with specified ID or empty one if nothing was found
     */
    public ShopOfferEntity getShopOfferById(Long id);

    /**
     * Gets all Shop Offers from DB of specified player
     *
     * @param playerId ID of player
     *
     * @return List of found Shop Offers of player
     */
    public List<ShopOfferEntity> getAllShopOffersOfPlayer(Long playerId);

    /**
     * Gets all Shop Offers from DB not created by specified player
     *
     * @param playerId ID of player
     *
     * @return List of found Shop Offers not created by specified player
     */
    public List<ShopOfferEntity> getAllShopOffersNotOfPlayer(Long playerId);
}
